@if $ym-base-forms == true {
	/**
	* @section Form Module
	*/

	/** Vertical-Forms - technical base (standard)
	*
	* |-------------------------------|
	* | form                          |
	* |-------------------------------|
	* |   label                       |
	* |   input / select / textarea   |
	* |-------------------------------|
	* | /form                         |
	* |-------------------------------|
	*
	* (en) Styling of forms where both label and input/select/textarea are styled with display: block;
	* (de) Formulargestaltung, bei der sowohl label als auch input/select/textarea mit display: block; gestaltet werden
	*/

	.ym-form,
	.ym-form fieldset { overflow: hidden; }

	.ym-form {
		div { position: relative; }

		label,
		.ym-label,
		.ym-message {
			position: relative;
			line-height: 1.5;
			display: block; //important for Safari
		}

		.ym-message {
			clear: both;
		}

		.ym-fbox-check label {
			display: inline;
		}

		input,
		textarea { cursor: text; }

		.ym-fbox-check input,
		input[type="image"],
		input[type="radio"],
		input[type="checkbox"],
		select,
		label {
			cursor: pointer;
		}

		// small adjustments for Internet Explorer - all versions
		textarea {
			overflow: auto;
		}

		// Hiding of hidden fields (otherwise ugly spaces in Firefox)
		// Versteckte Felder wirklich verstecken (sonst ggf. häßliche Lücken im Firefox)
		input.hidden,
		input[type=hidden] {
			display: none !important;
		}

		// styling containing DIV elements
		// Gestaltung der kapselnden DIV-Elemente
		.ym-fbox:before,
		.ym-fbox-text:before,
		.ym-fbox-select:before,
		.ym-fbox-check:before,
		.ym-fbox-button:before {
			content: "";
			display: table;
		}

		.ym-fbox:after,
		.ym-fbox-text:after,
		.ym-fbox-select:after,
		.ym-fbox-check:after,
		.ym-fbox-button:after {
			clear: both;
			content: ".";
			display: block;
			font-size: 0;
			height: 0;
			visibility: hidden;
		}

		// avoid jumping checkboxes & radiobuttons in IE8
		.ym-fbox-check input:focus,
		.ym-fbox-check input:hover,
		.ym-fbox-check input:active,
		input[type="radio"]:focus,
		input[type="radio"]:hover,
		input[type="radio"]:active,
		input[type="checkbox"]:focus,
		input[type="checkbox"]:hover,
		input[type="checkbox"]:active {
			border: 0 none;
		}

		// styling standard form elements with 'almost' equal flexible width
		// Gestaltung der einzelnen Formularelemente mit annähend gleicher Breite

		// default form element width
		input,
		textarea,
		select {
			display: block;
			position: relative;
			@include ym-box-sizing(border-box);
			width: 70%;
		}

		// overrule width settings for inline form elements ...
		.ym-fbox-check input,
		input[type="radio"],
		input[type="checkbox"] {
			display: inline;
			margin-left: 0;
			margin-right: 0.5ex;
			width: auto;
			height: auto;
		}

		input[type="image"] {
			border: 0;
			display: inline;
			height: auto;
			margin: 0;
			padding: 0;
			width: auto;
		}

		label,
		.ym-label {
			@include ym-box-sizing(border-box);
		}

		// styling buttons
		.ym-fbox-button {
			input {
				display: inline;
				overflow: visible;  // Fixes IE7 auto-padding bug
				width: auto;
			}
		}

		.ym-inline {
			display: inline-block;
			float: none; // reset columnar floating ...
			margin-right: 0; // reset rounding tolerance ...
			width: auto;
			vertical-align: baseline;
		}
	}

	/* default form wrapper width */
	.ym-fbox-wrap {
		display: table;
		table-layout: fixed;
		width: 70%;

		input,
		textarea,
		select {
			width: 100%;
		}

		input[type="image"] {
			width: auto;
		}

		input[type="radio"],
		input[type="checkbox"] {
			display: inline;
			width: auto;
			margin-left: 0;
			margin-right: 0.5ex;
		}

		label,
		.ym-label {
			display: inline;
		}
	}

	.ym-full {
		input,
		textarea,
		select {
			width: 100%;
		}
		.ym-fbox-wrap {
			width: 100%;
		}
	}

	/**
	*  Columnar forms display - technical base (optional)
	*
	*  |-------------------------------------------|
	*  | form                                      |
	*  |-------------------------------------------|
	*  |                                           |
	*  |   label   |   input / select / textarea   |
	*  |                                           |
	*  |-------------------------------------------|
	*  | /form                                     |
	*  |-------------------------------------------|
	*
	*  (en) Styling of forms where label floats left of form-elements
	*  (de) Formulargestaltung, bei der die label-Elemente nach links fließen
	*/

	.ym-columnar {
		// Columnar display
		// Spalten-Darstellung

		input,
		textarea,
		select {
			float: left;
			margin-right: -3px;
		}

		label,
		.ym-label {
			display: inline;
			float: left;
			width: 30%; // Can be fixed width too | Kann auch eine fixe Angabe sein
			z-index: 1;
		}

		// Indent Checkbox fields to match label-width
		// Checkboxen um den gleichen Wert einrücken, wie die Breite der labels
		.ym-fbox-check input,
		.ym-message {
			margin-left: 30%;
		}

		// reset indention for wrapped form elements ...
		.ym-fbox-wrap {
			margin-left: 30%;
			margin-right: -3px;

			.ym-message {
				margin-left: 0%;
			}

			label {
				float: none;
				width: auto;
				z-index: 1;
				margin-left: 0;
			}

			input {
				margin-left: 0;
				position: relative;
			}
		}

		.ym-fbox-check {
			position: relative;

			label,
			.ym-label {
				padding-top: 0;
			}

			input {
				top: 3px;
			}
		}

		.ym-fbox-button {
			input {
				float: none;
				margin-right: 1em;
			}
		}
	}

	.ym-fbox-wrap + .ym-fbox-wrap {
		margin-top: 0.5em;
	}

	/* global and local columnar settings for button alignment */
	.ym-columnar fieldset .ym-fbox-button,
	fieldset.ym-columnar .ym-fbox-button {
		padding-left: 30%;
	}
}
